package com.ytjj.qmyx.mall.service;

import com.ytjj.common.api.CommonResult;
import com.ytjj.qmyx.mall.model.Product;
import com.ytjj.qmyx.mall.model.dto.AppNewLifeHallIndexGroupProductDto;
import com.ytjj.qmyx.mall.model.response.groupbuy.GroupBuyOrderDetailResponse;
import com.ytjj.qmyx.mall.model.response.groupbuy.ProductByGroupActivityResponse;

import java.util.List;


public interface GroupActivityService {
    /**
     * 精选拼团列表
     * @param pageSize
     * @param pageNum
     * @param activityType
     * @return
     */
    CommonResult<List<ProductByGroupActivityResponse>> getGroupWorkAll(Integer pageSize, Integer pageNum, String activityType, Integer userId);

    /**
     * 快速参与拼团列表
     * @param pageSize
     * @param pageNum
     * @param activityType
     * @return
     */
    CommonResult<List<ProductByGroupActivityResponse>> getQuickGroupWorkAll(Integer pageSize, Integer pageNum, String activityType, Integer userId);

    /**
     * 我的拼团列表
     * @param pageSize
     * @param pageNum
     * @param activityType
     * @param status
     * @return
     */
    CommonResult getMyGroupList(Integer pageSize, Integer pageNum, String activityType, Integer status, Integer userId);

    /**
     * 我参与过的拼团总数
     * @param userId
     * @return
     */
    Integer getMyGroupNum(Integer userId);

    /**
     * 列表头部banners
     * @param activityType
     * @return
     */
    CommonResult queryBannersByActivity(String activityType);
    /**
     * 查看商品详情
     * @param productId
     * @return
     */
    CommonResult queryDetail(Integer productId, Integer userId);

    /**
     * 更新团员表的状态
     * @param orderNo
     * @param status
     * @return
     */
    boolean updateGoupBuyUserRelStatus(String orderNo, Integer status);

    /**
     * 开团/参团成功后的订单详情中拼团一些属性
     * @param groupId
     * @return
     */
    GroupBuyOrderDetailResponse queryOrderDetailGroupPropertiesByOrderNo(Integer groupId, Integer productId, Integer userId, Integer orderId);

    /**
     * 精选拼团推荐
     * @return
     */
    CommonResult queryFineGroupList(Integer userId);

    CommonResult receiveRedPack(String orderNo, Integer userId);

    /**
     * app 生活馆拼团商品推荐
     * @return
     */
    List<AppNewLifeHallIndexGroupProductDto> queryFineGroupListByNewLifeHall(Integer pageNum, Integer pageSize);
}
